package 我的Java学习_算法基础.day_02;

import java.util.Random;

public class _015_递归形式进行插入排序 {
    public static void main(String[] args) {
        Random random = new Random();
        int[] array=new int[10];
        for (int i = 0; i < array.length; i++) {
            array[i]=random.nextInt(20);
        }
        System.out.println("排序前：");
        for (int i:array
             ) {
            System.out.print(i+"\t");
        }
        System.out.println();
        insertSort(array,0,9);
        System.out.println("排序后：");
        for (int i:array
        ) {
            System.out.print(i+"\t");
        }
    }

    /**
     *
     * @param array 要排序的数组
     * @param begin 要排序的第一个元素下标
     * @param end 要排序的最后一个元素下标
     */
    public static void insertSort(int[] array,int begin,int end){
        if(end==begin){
            return;
        }
        insertSort(array,begin,end-1);
        int x = array[end];
        int index=end-1;
        while(index>=begin&&x<array[index]){    //坑1
            array[index+1]=array[index];
            index--;
        }
        array[index+1]=x;                   //坑2
    }
}
